﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace CEP
{
    /// <summary>
    /// Esta classe controla o mecanismo de log
    /// </summary>
    class Log
    {

        private StreamWriter arquivoLog;

        private static Log instance = new Log();

        /// <summary>
        /// Construtor que incializa o stream writer
        /// </summary>
        private Log()
        {
            arquivoLog = new StreamWriter(Properties.Settings.Default.log_path, true);
        }

        public static Log Instance
        {
            get
            {
                return instance;
            }
        }

        /// <summary>
        /// Funçao que escreve no ficheiro de log
        /// </summary>
        /// <param name="text"></param>
        public void escrever(string text)
        {
            arquivoLog.WriteLine("CEP | " + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss.fff") + " | " + text);
            //Limpo o buffer com o método Flush
            arquivoLog.Flush();
        }

        /// <summary>
        /// Fecha a ligação ao ficheiro de log
        /// </summary>
        public void stop()
        {
            //Fecho o arquivo com o método Close
            arquivoLog.Close();
        }

    }
}
